package com.feemanage.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.common.validate.edit;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.framework.config.BigDecimalSerializer;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 认领
 */
@Data
@TableName("biz_cw_income_claim")
public class BizCwIncomeClaim extends myBaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 自增ID */
    @TableId(value = "id",type = IdType.ASSIGN_UUID)
    @NotNull(message = "id不能为空", groups = {edit.class})
    private String id;

    /** 财务来款ID */
    private String cwIncomeId;

    /** 项目ID */
    private String projectId;

    /** 项目名称 */
    private String projectName;

    /** 认领人 */
    private String claimerName;

    /** 认领人ID */
    private String claimerId;

    /** 认领金额 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal claimFee;

    /** 外拨金额 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal outboundFee;


    /** 认领时间 默认当前日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime claimDate;

    /** 是否拆分留校经费  是或否（存储值：1/0）*/
    private String isSplitIncome;

    /** 摘要 */
    private String note;

    /** 审核状态 */
    private String checkstatus;

    /** 审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String checkdate;

    /** 审核人 */
    private String checker;

    /** 来款类型 */
    private String incomeType;

    /** 是否来款导入 */
    private String batchImport;

    /** 经费类型 */
    private String feeType;

    /** 绩效 */
    private String performanceFee;

    /** 预算拆分方式 */
    private String budgetSplitModde;

    /**  */
    private String dataJson;

    /**  */
    private String metaJson;

    /** 留校金额 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal schoolFee;

    /** 经费认领标识  */
    private String claimType;

    /**  */
    private String claimId;

    /** 财务对接状态 */
    private String pushStatus;

    /** 管理费用方案id */
    private String feeSchemeId;

    private String processInstanceId;

}
